# 设置cmake的最低版本和项目名称
cmake_minimum_required(VERSION 3.22)
project(webserver_test)

# 注入项目根路径宏（全局生效）
add_definitions(-DPROJECT_ROOT_PATH="${CMAKE_SOURCE_DIR}")
# 注入调试开关宏（仅对 my_app 生效）(示例)
# add_executable(my_app main.cpp)
# target_compile_definitions(my_app PRIVATE ENABLE_DEBUG=1)

# 设置调试编译选项
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -O0 -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmacro-prefix-map=${CMAKE_SOURCE_DIR}=.")

# 设置项目可执行文件输出的路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# 设置项目库文件输出的路径
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

# 设置项目编译头文件搜索路径 -I
# 目前可能存在路径污染的问题，需要进一步解决
include_directories(${PROJECT_SOURCE_DIR}/src/include)

# 设置项目库文件搜索路径 -L
link_directories(${PROJECT_SOURCE_DIR}/lib)

# src包含了所有的相关代码
add_subdirectory(src)
# example包含了使用的示例代码
add_subdirectory(example)

# 添加调试符号（如果尚未包含）
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb3 -DDEBUG")

# todo: 添加格式化目标